Authors: Sagar Joshi and Sneha Heda
About the BWM functionality
Sametime uses SIP to negotiate media sessions. Embedded in the Session Initiation Protocol (SIP) message is a Session Description Protocol (SDP) RFC 4566 section containing the desired session bandwidth attribute, which the Bandwidth Manager uses to monitor transmission rates on the managed network.
As illustrated in figure below, Bandwidth Manager, when deployed, will be part of the signalling path, and it will perform CAC (Call Access Control) based on the available bandwidth.
Depending on user policy, locations of the call, and available bandwidth, the Bandwidth Manager may let the call through, reject the call, or modify the media or the bandwidth attribute in the SDP. The action ensures that the total transmission rate for audio and video will not exceed the available bandwidth allocated for audio and video usage in the system configuration.
About the Bandwidth Manager deployment
IBM Bandwidth Manager is WebSphere Application Server-based server. It is the only server in the Sametime server family which is not installed using IBM Install Manager or Install Shield based Installer. The required prerequisites and WebSphere Application Server need to be deployed and configured manually following the documentation. In order to deploy the Bandwidth Manager you need the following prerequisites . It is important to note the version of WebSphere Application Server and WebSphere Application Server Update Installer.
Prereqs
- DB2 10.1
- LDAP
- WebSphere Application Server 7.0.0.15 plus ifixes (Refer to Technote -> http://www-01.ibm.com/support/docview.wss?uid=swg21657816)
- CZYA2ML: WASND V7.0.0.15 Customized Installation Package Linux x86 for Sametime V8.5.2 Multilingual
- CZYH1ML: IBM WebSphere V7.0.0.15 iFixes for Sametime V8.5.2 Windows, AIX, Linux x86, zLinux, Solaris, IBM i Multilingual
- WebSphere Application Server Update Installer 7.0.0.25 ( version compatible with WebSphere Application Server 7.0.0.15)
- Sametime Media Manager (v 8.5.2 IFR1 or v9)
This article focuses on the best practices used for Bandwidth Manager deployment. It clearly differentiates between steps required for stand-alone and cluster deployment for better understanding. It addresses the pain points faced by most of customers at the time of install and configuration. It meticulously highlights all those steps which are often missed or misinterpreted by the customers.
Important Installation Tips
Linux-specific Instructions
1. SE Linux should be disabled prior to installation on Linux (Linux RHEL only). To Disable SELinux on any RedHat operating system:
a. Log in as root on the Linux RedHat server where you will install WebSphere Application Server.
b. Open the /etc/selinux/config file for editing.
c. Locate the SELINUX setting. Change its value to either disable or permissive.
d. Save and close the file.
e. Restart the Linux server.
2. Use the root user to install WebSphere Application Server and profiles
Choose your deployment topology
1) Bandwidth Manager stand-alone deployment
Choose "Application Server" profile while creating the Websphere Application Server profile for Bandwidth Manager server.
2) Bandwidth Manager cluster deployment
Cluster deployment requires deployment manager and the node profiles. There are two possibilities:
1) Cell + One or more Application Servers
A) Cell (Deployment Manager and Managed Node) - for the first node which hosts Bandwidth Manager applications
B) Application Server - for all other nodes in the cluster.

2) Deployment Manager and two or more Application Servers
A) Deployment Manager
B) Application Server - for the first node which hosts Bandwidth Manager applications
C) Application Server - for all other nodes in the cluster.

In the interest of hardware and convenience of deployment and administration, choose option 1. Further ahead in this document option 1 is considered as cluster deployment topology wherever referred.
A cluster uses a WebSphere proxy server to manage routing and caching tasks. To ensure redundancy in the case of a proxy server failure, you may want to configure multiple proxy servers for the cluster. In such a case , WebSphere Proxy instance shall have to be fronted with Load Balancer.
You can host a WebSphere proxy server on any node in the cluster . Since it uses a significant amount of system resources, you may consider to host it on a dedicated computer.
Figures below explains how WAS Proxy can be deployed.
WAS Proxy and Application Server on the same machine
WAS Proxy and Application Server on separate machine

Single WebSphere Application Server instance with multiple profiles
In case you are selecting Typical profile creation, then on the Summary page, review port values and make sure they are unique.
Multiple WebSphere Application Server instances
** If there is another WebSphere instance installed on the same machine then these port conflicts will have to be resolved manually. For this purpose you will have to select "Advanced Profile Creation" while creating the WebSphere Application Server profile.
__
Configuring WebSphere Application Server Cluster
1) Node Federation for Secondary Node(s)
To federate the secondary nodes with the Cell Profile already created . Use the following command from the machine where the node is installed. Ensure that to use the option "-includeapps" while running the command.
./addNode.sh DM_hostname DM_port_number -includeapps
Where DM_hostname is the host name of the Deployment Manager server and DM_port_number is the SOAP port of the deployment manager. This value can found in the variable "SOAP connector port" available in the file AboutThisProfile.txt . This file is located at ${WAS_INSTALL_ROOT}/profiles//logs/. e.g. /opt/IBM/WebSphere/AppServer/profiles/Dmgr/logs
Ex./addNode.sh bwm_dm.example.com 8879 –includeapps
Wait for the operation to complete before proceeding. Look for a success message similar to the following when complete: e.g. Node MyserverNodehas been successfully federated.
To verify that the node is federated with the Deployment Manager's cell, log into the Integrated Solutions Console using your administrative user ID and password and click Servers -> Application servers. Make sure you can see the node's information.
If you already logged in, you must log out and then log in again before you can see changes.
Repeat this entire process for the other node(s).
2) Creating Cluster Members
1 Log in to the Integrated Solutions Console as the WebSphere® administrator.
2. On the navigation tree, click Servers -> Clusters -> WebSphere application server clusters.
3. On the clusters page, click the New button at the top of the table.
4. On the Create a new cluster page, type a descriptive name for the cluster (for example, BWMcluster). Click Configure HTTP session memory-to-memory replication, and then click Next.
5. On the Create first cluster member page, type a descriptive name for the first cluster member (for example, BWMserver1). Here , select the primary node.
Select default option "Create the member using an application server as a template" with option "default" selected and then click Next.
6. On the Create additional cluster members page, add a second cluster member (for example, with the name BWMserver2), . Here, select the secondary nodes . click Add Member.
(You can repeat the #6 for all secondary nodes in the cluster)
7. Click Finish.
8. Click the Save link in the Messages box at the top of the page
9. Restart the Deployment Manager from command prompt.
10. Log in to the Integrated Solutions Console. Fully resynchronize all the nodes:
11. Restart all nodes in the cluster:
a. In the Deployment Manager's Integrated Solutions Console, click System Administration -> Node agents.
b. Click a node agent, and then click Restart (the node agent should already be running).
12. Click Servers -> Clusters -> WebSphere application server clusters in the navigation tree. Select the cluster's check box and click Start to start all cluster member servers.
3) Creating and Configuring Websphere Proxy instance
There are two types of configurations recommended here
A. Bandwidth Manager Cluster fronted by Load Balancer
This type of deployment requires at least two instance of WebSphere Proxy servers fronting the Bandwidth Manager cluster. It is recommended that each of the Bandwidth Manager nodes hosts only one instance of WebSphere proxy.
B. No Load Balancer configured
A single Websphere proxy instance is sufficient for this type of deployment. It can be hosted on any of the existing Bandwidth Manager nodes.
Steps
1. Log in to the Deployment Manager ISC and navigate to Servers -> Server Types -> WebSphere proxy servers. In the Proxy servers table, click the New button at the top of the table.
2. On the Create a new proxy server entry page, do the following:
a. In the Select a node list, select the node that will host the WebSphere proxy server. Be sure to select a node that belongs to the Bandwidth Manager cluster.
b. Type a descriptive name for the new proxy server (for example, BWMproxy1).
c. Click Next.
3. On the Specify server specific properties page, do the following:
a. Select both HTTP and SIP protocols for your cluster.
b. Select Generate unique ports.\
c. Click Next.
4. On the Select a server template page, select proxy_server_foundation (the WebSphere Application Server Default Proxy Server Template), and then click Next.
5. On the Confirm new server page, click Finish.
6. Click Apply and then click the Save link in the Messages box at the top of the page.
7. Synchronize the nodes in the cluster:
a. Click System Administration -> Nodes.
b. Select both nodes, and then click Full Resynchronization.
8. Assign the new proxy server to the cluster:
a. Navigate to Servers -> Server Types -> Websphere proxy servers -> proxy_server_name -> SIP Proxy Server Settings -> SIP proxy settings. In the Default cluster field, select the Bandwidth Manager cluster that you are configuring this WebSphere Application Server proxy server to work with. Click Apply and Save in the Messages box at the top of the page.
b. Now start the new proxy server:
4) Adding ports to the virtual hosts alias for the Sametime Bandwidth Manager cluster
http://www-01.ibm.com/support/knowledgecenter/SSKTXQ_9.0.0/admin/install/inst_bwm_clus_add_ports_vh.html
Bandwidth Manager Application Installation
1) Bandwidth Manager Database Creation
1 . Creating the database and Configuring a connection to the JDBC providerTo create a connection to the Bandwidth Manager database hosted on the IBM DB2® server, you must configure IBM WebSphere® Application Server to use the driver implementation classes that are encapsulated by the Java™ Database Connectivity (JDBC) provider.
a. CREATE DATABASE " BWM_DATA " AUTOMATIC STORAGE YES ALIAS BWM_DATA COLLATE USING UCA400_NO PAGESIZE 8 K
where Database_name is the name of the database you are creating. The database name must correspond to the name that you supply for the db2.connection.database property in the db2.connection.properties file before installing the Bandwidth Manager application. Examples in this documentation use "BWM_DATA" as the database name. When naming DB2 objects, follow the rules for your operating system.external link
b. When the SUCCESS message displays, confirm that the database was created correctly, and then click Close to exit Data Studio.
c. On the deployment manager, open the folder WAS_Install_Root/deploytool/itp/plugins.
d. WAS_install_root is the root directory where WebSphere Application Server is installed. In Microsoft® Windows® this is typically C:\Program Files\WebSphere\AppServer and in Linux® it is typically /opt/IBM/WebSphere/AppServer.
e. Now locate the subfolder named com.ibm.datatools.db2_2.0.101.vXXXXXXXXXXXX, where "XXXXXXXXXXXX" is a 12-digit number.
f. This is the path to the JDBC drivers; you will need this information later in step 5.
g. Log in to the Integrated Solutions Console and the WebSphere Application Server administrator (the ID you created when you installed WebSphere Application Server).
h. Click Environment -> WebSphere variables. Select the Cell Manager Node.
i. Click on the environment variable called DB2UNIVERSAL_JDBC_DRIVER_PATH, and enter the complete path to the drivers you located in step 2 before clicking OK.
j. The path will be
WAS_install_root/deploytool/itp/plugins/com.ibm.datatools.db2_2.0.101.v
XXXXXXXXXXXX, where "
XXXXXXXXXXXX" is a 12-digit number.
k. Click the Save link in the "Messages" box at the beginning of the page.
l. Restart the server so the change can take effect.
2) Updating the db2.connection.properties file
http://www-01.ibm.com/support/knowledgecenter/SSKTXQ_9.0.0/admin/install/inst_bwm_db2_props_file_node.html
3) Updating the websphere_configuration.properties file for a cluster
Update the websphere_configuration.properties file included in the IBM Sametime Bandwidth Manager installation package and add settings for your deployment.
Update the websphere_configuration.properties file as follows:
Standalone Bandwidth Manager Deployment
was.language=en
was.server=(Application Server name. Ex. dmgr)
was.node=(Application Server Node name)
was.cell=(Application Server Cell name)
was.profilename=(Application Server profile name)
was.home=(WebSphere Application Server installation directory Eg. /opt/IBM/WebSphere/AppServer )
was.hostname=(Application Server Hostname)
was.hostport=(Application Server Administrative Console Port)
was.sipport=(Application Server SOAP_CONNECTOR_ADDRESS)
was.httpport=(Application Server HTTP Port)
was.userid=(WebSphere Application Server user id)
was.password=(WebSphere Application Server password)
was.db2.driver.path=(Ex. ${WAS_INSTALL_ROOT}/deploytool/itp/plugins/com.ibm.datatools.db2_2.1.102.v20100709_0407/driver)
# Uncomment and adjust parameters below for clustered environment
#was.cluster=
#proxy.host=
#proxy.port.http=
#proxy.port.sip=
#portlet.node=
Clustered Bandwidth Manager Deployment
was.language=en
was.server=(Deployment manager server name. Ex. dmgr)
was.node=(Deployment Manager Node name)
was.cell=(Deployment Manager Cell name)
was.profilename=(Deployment Manager profile name)
was.home=(WebSphere Application Server installation directory Eg. /opt/IBM/WebSphere/AppServer )
was.hostname=(Deployment Manager Hostname)
was.hostport=(Deployment Manager Administrative Console Port)
was.sipport=(Deployment Manager SOAP_CONNECTOR_ADDRESS)
was.httpport=(Deployment Manager HTTP Port)
was.userid=(WebSphere Application Server user id)
was.password=(WebSphere Application Server password)
was.db2.driver.path=(Ex. ${WAS_INSTALL_ROOT}/deploytool/itp/plugins/com.ibm.datatools.db2_2.1.102.v20100709_0407/driver)
# Uncomment and adjust parameters below for clustered environment
was.cluster=(Bandwidth Manager Cluster name)
#proxy.host=(Loadbalance Hostname or WebSphere Application Server proxy hostname depending whether deployment is configured with LB or No LB)
#proxy.port.http=(WebSphere Application Server proxy HTTP Port)
#proxy.port.sip=(WebSphere Application Server proxy SIP Port)
#portlet.node=(Deployment Manager Node name)
d. Save and close the file.
4) Running the install Script
Standalone deployment
Run the command mentioned below from the machine where the WebSphere Application server profile for Bandwidth Manager has been deployed.
WAS_install_root\profiles\
Profile_name\bin\ws_ant.bat -Dinstall.db=true
Clustered Deployment
Run the command mentioned below from the machine where the WebSphere Application Deployment manager for Bandwidth Manager has been deployed.
WAS_install_root\profiles\
Profile_name\bin\ws_ant.bat -Dinstall.db=true
Post Install Configuration Steps
Note : The server , node, cluster restarts should be performed exactly as mentioned in the wiki links below for each of the below steps. The WebSphere components should be restarted using default WebSphere Application Server user which was created at the time of WebSphere Application Server profile creation.
1) Enabling WebSphere Application Server security for a Sametime Bandwidth Manager
Stand-alone
http://www-01.ibm.com/support/knowledgecenter/SSKTXQ_9.0.0/admin/install/inst_bwm_enable_wasadmin_security.html
Cluster
http://www-01.ibm.com/support/knowledgecenter/SSKTXQ_9.0.0/admin/install/inst_bwm_enable_wasadmin_security_clus.html
2) Creating an administrator for a Sametime Bandwidth Manager
Standalone
http://www-01.ibm.com/support/knowledgecenter/SSKTXQ_9.0.0/admin/install/inst_bwm_enable_was_security.html
Cluster
http://www-01.ibm.com/support/knowledgecenter/SSKTXQ_9.0.0/admin/install/inst_bwm_enable_was_security_node.html
3) Connecting a Sametime Bandwidth Manager node to the LDAP server
Standalone
http://www-01.ibm.com/support/knowledgecenter/SSKTXQ_9.0.0/admin/install/inst_bwm_ldap_connect.html
Cluster
http://www-01.ibm.com/support/knowledgecenter/SSKTXQ_9.0.0/admin/install/inst_bwm_ldap_connect_dm.html
Note : Step 19 and 20 in the above link needs to be performed only if LDAP server configured doesn't support the uid attribute.
4) Setting up routing from the SIP Proxy/Registrar to the Sametime Bandwidth Manager
http://www-01.ibm.com/support/knowledgecenter/SSKTXQ_9.0.0/admin/install/inst_bwm_config_sippr_force.html
Note: In general there are two routing rules required corresponding to each server endpoint from which sends the SIP INVITE. The basic conditions for the SIP INVITE to be redirected to Bandwidth Manager are:
- Content Length is equal to 0.
- Content Type is not text/xml.
Sametime 9 standalone deployment
- Two routing rules for INVITE requests coming from Conference Manager .
The Contact header field in the Routing Rule should contain IP address or host name depending on the ConferenceFocusHost field in stavconfig.xml. e.g. Contact Header=.*stconffocus01.* in case hostname and Contact Header=.*9.8.7.6.* in case of IP address.
- Two routing rules for INVITE requests coming from Video Manager.
The Contact header field in the Routing Rule should contain the IP address of the Video Manager and NOT the host name. e.g. Contact Header=.*9.10.11.12.*
Sametime 9 cluster deployment
- Since Conference Manager cluster is fronted by WebSphere Application Server SIP Proxy the SIP INVITE comes from WebSphere Application Server Proxy. The stavconfig.xml will have ConferenceFocusHost set to the hostname of WebSphere Application Server SIP Proxy. Hence ,the two routing rules for Conference Manager will be compare the ConferenceManager WebSphere Application Server SIP Proxy Host in the Contact header.
- Video Manager Cluster - Routing Rules = 2 * Number of Video Manager Nodes.
In case of Video Manager cluster , for each node there would be 2 routing rules required. For e.g. if there are 3 Video Manager Nodes then there would be 6 Routing Rules required.
Pre Sametime 9 deployments - total two routing rules are required
- Two routing rules for INVITE requests coming from Conference Manager
5) Setting up the outbound proxy on the Video Manager Server
http://www-01.ibm.com/support/knowledgecenter/SSKTXQ_9.0.0/admin/install/inst_av_config_vmgr_outboundproxy.html
Note : In case of Video Manager cluster this step needs to be performed on each Video Manager node and the corresponding nodes need to be restarted.
6) Verification of the Bandwidth Manager deployment
Log in to the Bandwidth Manager administration console using the administrator created in the above steps. Navigate to location mentioned below. The status tab should show all the Bandwidth Manager applications in "Active" state.
If the status appears "Idle" or "Stopped" , then click on "Start/Restart" Button. If the status in not active for all the Bandwidth Manager applications then the remaining tabs will remain disabled.
7) Configuring the Sametime Bandwidth Manager to use the SIP Proxy/Registrar Server
http://www-01.ibm.com/support/knowledgecenter/SSKTXQ_9.0.0/admin/install/inst_bwm_config_sippr_use.html
Note :
- Log in to the Bandwidth Manager administration console with the administrator created in the above steps.
- Enter the SIP P/R Host ,port and Transport protocol exactly as set on the Media Manager Admin Page in the Sip Server Uri.
- In case of SIP P/R Cluster , this host name would be the Load Balancer or the WAS SIP proxy host name.
8) Configuring the Bandwidth Manager to use TLS encryption
http://www-01.ibm.com/support/knowledgecenter/SSKTXQ_9.0.0/admin/install/inst_bwm_enable_tls.html?lang=en
Note : By default SIP Transport Protocol is configured as TLS, so it is necessary to perform this step unless SIP transport protocol has been configured as TCP.
Also make sure the SIP P/R has the trusted IP of the BWM . In case of cluster the Load Balancer or the WAS SIP Proxy IP would also to have to be added.http://www-01.ibm.com/support/knowledgecenter/SSKTXQ_9.0.0/admin/install/inst_bwm_conf_sip_to_trust_bwm_clus.html?lang=en
9) Replacing the default IBM self-signed certificate on the Bandwidth Manager (Optional)
http://www-01.ibm.com/support/knowledgecenter/SSKTXQ_9.0.0/admin/config/config_security_ssl_change_cert_bwm.html?lang=en